home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / GNU / GNUPLOTsrc.lha / term / hp2648.trm < prev    next >
Encoding:
Text File  |  1996-01-22  |  3.8 KB  |  180 lines

  1. /*
  2.  * $Id: hp2648.trm,v 1.6 1995/12/20 21:47:52 drd Exp $
  3.  *
  4.  */
  5.  
  6. /* GNUPLOT -  hp2648.trm */
  7. /*
  8.  * Copyright (C) 1990 - 1993   
  9.  *
  10.  * Permission to use, copy, and distribute this software and its
  11.  * documentation for any purpose with or without fee is hereby granted, 
  12.  * provided that the above copyright notice appear in all copies and 
  13.  * that both that copyright notice and this permission notice appear 
  14.  * in supporting documentation.
  15.  *
  16.  * Permission to modify the software is granted, but not the right to
  17.  * distribute the modified code.  Modifications are to be distributed 
  18.  * as patches to released version.
  19.  *  
  20.  * This software  is provided "as is" without express or implied warranty.
  21.  * 
  22.  * This file is included by ../term.c.
  23.  *
  24.  * This terminal driver supports:
  25.  *  HP2648 and HP2647
  26.  *
  27.  * AUTHORS
  28.  *  Russell Lang
  29.  * 
  30.  * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
  31.  * 
  32.  */
  33.  
  34. /*
  35.  * adapted to the new terminal layout by Stefan Bodewig (Dec. 1995)
  36.  */
  37.  
  38. #ifndef GOT_DRIVER_H
  39. #include "driver.h"
  40. #endif
  41.  
  42. #ifdef TERM_REGISTER
  43. register_term(hp2648)
  44. #endif
  45.  
  46. #ifdef TERM_PROTO
  47. TERM_PUBLIC void HP2648init __P((void));
  48. TERM_PUBLIC void HP2648graphics __P((void));
  49. TERM_PUBLIC void HP2648text __P((void));
  50. TERM_PUBLIC void HP2648linetype __P((int linetype));
  51. TERM_PUBLIC void HP2648move __P((unsigned int x, unsigned int y));
  52. TERM_PUBLIC void HP2648vector __P((unsigned int x, unsigned int y));
  53. TERM_PUBLIC void HP2648put_text __P((unsigned int x, unsigned int y, char *str));
  54. TERM_PUBLIC int HP2648_text_angle __P((int ang));
  55. TERM_PUBLIC void HP2648reset __P((void));
  56.  
  57. #define HP2648XMAX 720             
  58. #define HP2648YMAX 360
  59.  
  60. #define HP2648VCHAR        12      
  61. #define HP2648HCHAR        7        
  62. #define HP2648VTIC        8
  63. #define HP2648HTIC        8
  64. #endif /* TERM_PROTO */
  65.  
  66. #ifndef TERM_PROTO_ONLY
  67. #ifdef TERM_BODY
  68. #define HP2648XLAST (HP2648XMAX - 1)
  69. #define HP2648YLAST (HP2648YMAX - 1)
  70.  
  71.  
  72. TERM_PUBLIC void HP2648init()
  73. {
  74.     fprintf(outfile,"\033*m1m1n136,1cZ");
  75. /*                   1     2 3     4
  76.     1. mode
  77.     2. textsize=1
  78.     3. textangle=1
  79.         4. define line type 2 to be *   *   *   * etc.
  80. */
  81. }
  82.  
  83.  
  84. TERM_PUBLIC void HP2648graphics()
  85. {
  86.     fprintf(outfile,"\033*dacZ");
  87. /*                   1     23
  88.     1. mode
  89.     2. clear grahics screen
  90.     3. graphics video on
  91. */
  92. }
  93.  
  94.  
  95. TERM_PUBLIC void HP2648text()
  96. {
  97. }
  98.  
  99.  
  100. TERM_PUBLIC void HP2648linetype(linetype)
  101. int linetype;
  102. {
  103.     static int hpline[] = {1,7,1,4,5,6,8,9,10,7,2};
  104.     fprintf(outfile,"\033*m%dbZ",hpline[(linetype+2)%11]);
  105. }
  106.  
  107.  
  108. TERM_PUBLIC void HP2648move(x,y)
  109. unsigned int x,y;
  110. {
  111.     fprintf(outfile,"\033*paf%d,%dZ",x,y);
  112.     /*               1     23     4
  113.     1    plot mode
  114.     2    "pen up"
  115.     3    goto absolute x,y
  116.     4    end command
  117.     */
  118. }
  119.  
  120.  
  121. TERM_PUBLIC void HP2648vector(x,y)
  122. unsigned int x,y;
  123. {
  124.     fprintf(outfile,"\033*pbf%d,%dZ",x,y);
  125.     /*                     1 
  126.     1    "pen down"
  127.     */
  128. }
  129.  
  130.  
  131. TERM_PUBLIC void HP2648put_text(x,y,str)
  132. unsigned int x, y;
  133. char *str;
  134. {
  135.     HP2648move(x,y-HP2648VCHAR/2 + 1);
  136.     fprintf(outfile,"\033*l%s\n",str);
  137. }
  138.  
  139.  
  140. TERM_PUBLIC int HP2648_text_angle(ang)
  141. int ang;
  142. {
  143.     fprintf(outfile,"\033*m%dnZ\n",ang+1);
  144.     return TRUE;
  145. }
  146.     
  147. TERM_PUBLIC void HP2648reset()
  148. {
  149. }
  150.  
  151. #endif /* TERM_BODY */
  152.  
  153. #ifdef TERM_TABLE
  154.  
  155. TERM_TABLE_START(hp2648_driver)
  156.     "hp2648", "HP2648 and HP2647",
  157.        HP2648XMAX, HP2648YMAX, HP2648VCHAR, HP2648HCHAR, 
  158.        HP2648VTIC, HP2648HTIC, options_null, HP2648init, HP2648reset, 
  159.        HP2648text, null_scale, HP2648graphics, HP2648move, HP2648vector, 
  160.        HP2648linetype, HP2648put_text, HP2648_text_angle, 
  161.        null_justify_text, line_and_point, do_arrow, set_font_null
  162. TERM_TABLE_END(hp2648_driver)
  163.  
  164. #undef LAST_TERM
  165. #define LAST_TERM hp2648_driver
  166.  
  167. #endif /* TERM_TABLE */
  168. #endif /* TERM_PROTO_ONLY */
  169.  
  170. /*
  171.  * NAME: hp2648
  172.  *
  173.  * OPTIONS: none
  174.  *
  175.  * SUPPORTS: HP2648 & HP2647
  176.  *
  177.  * Further Info: Same as for hp2623A, I have no idea, whether this is
  178.  *         plotter or a graphics terminal (or a streamer device).
  179.  *
  180.  */